<?php
namespace Zxf5115\Laravel\Kernel\Providers;

use Illuminate\Support\ServiceProvider;

/**
 * 核心服务提供者
 *
 * 负责注册模块服务、配置和资源
 */
class KernelServiceProvider extends ServiceProvider
{
  /**
   * 注册服务
   */
  public function register() : void
  {
    // 1. 合并模块配置到主应用配置
    $this->mergeConfigFrom($this->getConfigPath(), 'zxf5115');
  }


  /**
   * 启动应用服务
   */
  public function boot() : void
  {
    // 发布配置文件
    $this->publishConfig();

    // 发布语言文件
    $this->publishTranslations();
  }


  /**
   * 获取配置文件路径
   */
  protected function getConfigPath() : string
  {
    return __DIR__ . '/../../config/config.php';
  }


  /**
   * 发布配置文件
   */
  protected function publishConfig() : void
  {
    $this->publishes([
      $this->getConfigPath() => config_path('zxf5115.php'),
    ], 'zxf5115-kernel-config');
  }


  /**
   * 发布语言文件
   */
  protected function publishTranslations() : void
  {
    $this->publishes([
      __DIR__ . '/../../lang' => lang_path(),
    ], 'zxf5115-kernel-lang');
  }
}
